#ifndef ECRAN_H
#define ECRAN_H

	#include <iostream>
	#include <string>
	#include "SDL.h"

	#include "Point.h"
	#include "Vecteur.h"
	#include "Courbe.h"

	using namespace std;

	class Ecran
	{
		private:
			SDL_Surface * _surface;
            Point _origine;

			bool controlPoint(Point p);
		public:

			Ecran();
			Ecran(const int & largeur, const int & hauteur);
			Ecran(const int & largeur, const int & hauteur, const string & titre);

			~Ecran();

			void maj();
			void setOrigine(Point p);
			Point getOrigine();
			void drawRepere();
			int getHauteur();
			int getLargeur();
			void setCouleurFond(const Uint32 & couleur);

			Uint32 getCouleur(const unsigned char & r,const unsigned char & g,const unsigned char & b);

			void saveBMP(string chemin);

			void drawPoint(Point pt, Uint32 couleur = NULL,bool mj = true);
			void drawLine(Point p1, Point p2, Uint32 couleur = NULL, bool mj = true);
			void drawVecteur(Vecteur v, Uint32 couleur = NULL);


			void drawVecteurs(Courbe c, Uint32 couleur = NULL);
			void drawTrace(Courbe c, Uint32 couleur = NULL);
			void drawCourbe(Courbe c,unsigned int nbP = 100 , Uint32 couleur = NULL);

			void drawVecteur(Point p, Vecteur v, Uint32 couleur = NULL);


            void drawBiggerPixel(Point p ,unsigned int size = 3 ,Uint32 couleur = NULL);
	};

#endif //ECRAN_H
